package com.gc.common.entity;

import java.util.List;

/**
 * 页面工具类实体
 *
 * @author 张恒
 */
public class PageData {
    /**
     * 设置默认的当前页为第一页
     */
    public static int CURRENT_PAGE = 1;
    /**
     * 设子默认每页大小为10条
     */
    public static int ROWS = 10;
    /**
     * 总记录数
     */
    private int totalRecords;
    /**
     * 当前第几页
     */
    private int page;
    /**
     * 总共多少页
     */
    private int totalPages;
    /**
     * 每页多少条
     */
    private int pageSize;
    /**
     * 要展示的列表数据
     */
    private List dataList;

    /**
     * 构造方法
     *
     * @param totalRecords
     * @param page
     * @param pageSize
     * @param dataList
     */
    public PageData(int totalRecords, int page, int pageSize, List dataList) {
        super();
        this.totalRecords = totalRecords;
        this.page = page;
        this.pageSize = pageSize;
        this.dataList = dataList;
        this.totalPages = (totalRecords / pageSize);
        if (totalRecords % pageSize != 0) {
            this.totalPages = this.totalPages + 1;
        }

    }

    public int gettotalRecords() {
        return totalRecords;
    }

    public void settotalRecords(int totalRecords) {
        this.totalRecords = totalRecords;
    }

    public int getPage() {
        return page;
    }

    public void setPage(int page) {
        this.page = page;
    }

    public int getTotalPages() {
        return totalPages;
    }

    public void setTotalPages(int totalPages) {
        this.totalPages = totalPages;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public List getDataList() {
        return dataList;
    }

    public void setDataList(List dataList) {
        this.dataList = dataList;
    }
    /**
     * 以下的方法是一些辅助方法，不是必须，但很好用
     * 待会可以直接在页面上调用这些方法，因为他们都是get打头而且无参数
     * 可以直接使用el表达式来调用，形如￥【pageData，filst】
     */
    /**
     * 首页
     */
    public int getFirst() {
        return 1;
    }

    /**
     * 上一页
     */
    public int getPre() {
        if (page - 1 > 0) {
            return page - 1;
        } else {
            return 1;
        }
    }

    /**
     * 下一页
     */
    public int getNext() {
        if (page + 1 <= totalPages) {
            return page + 1;
        } else {
            return totalPages;
        }
    }

    public int getLast() {
        return totalPages;
    }
}
